Wissenschaft von Algorithmen, die ohne menschliches Eingreifen (Ableitung von Regeln, Erstellung von Modellen) den Sinn von Daten erkennen.
Überwachtes Lernen
Verstärkendes Lernen
Unüberwachtes Lernen
Entscheidende Faktoren für Datensätze sind Umfang, Auswahl und Qualität
Mithilfe der Datenkomprimierung sollen Merkmale zusammengefasst werden, indem diese in einen neuen Merkmalsraum transformiert werden.
Principal Component Analysis
Mithilfe des PCA wird ein Untermerkmalsraum mit maximaler Varianz entlang der orthogonalen Merkmalsachse konstruiert. Es werden Kovarianzmatrizen konstruiert, und durch Zerlegung in Eigenwerte und Vektoren die Vektoren mit den größten Eigenwerten selektiert. Daraus wird eine Projektionsmatrix erzeugt, mit der ein neuer Merkmalsunterraum betrachtet werden kann (weniger Merkmale als vorher).
Linear Discriminant Analysis
LDA versucht einen Merkmalsunterraum zu finden, der die Trennbarkeit der Klassen optimiert (maximale Separierbarkeit). Dafür werden Mittelwertvektoren und zwei resultierende Streumatrizen berechnet (innerhalb \(S_w\) und zwischen \(S_B\) den Klassen). Anschließend erneute Eigenwertzerlegung mit \(S_w^{-1}S_B\).
Kernel PCA
Ziel des Kernel PCAs ist es, nicht-linear trennbare Daten in neue, linear trennbare Daten umzuwandeln. Berechnung einer zentrierten Kernel-Matrix für jedes Element der Datenmenge um anschließend die Eigenwerte und Eigenvektoren bestimmen zu können. Die Konstruktion eine Projektionsmatrix ist nicht notwendig.
Perzeptron
\[ \phi(z) = \begin{cases} 1 & \text{wenn } z \ge 0 \\[4mm] -1 & \text{andernfalls} \end{cases} \]
Ermittlung von \(w\):
eta0: Lernrate (Größe der Schritte)max_iter: Anzahl der EpochenAdaline (ADAptive LInear NEuron classifier)
Lineare Aktivierungsfunktion anstelle von einer Sprungfunktion. Gradientenabstiegsverfahren einer Straffunktion \(J\)
Straffunktion als Summe der quadratischen Abweichungen:
\[ J(w) = \frac{1}{2} \sum_{i} \left( y^{i} -\phi(w^T x^{i}) \right)^2 \]
Die Änderung \(\Delta w = -\eta \nabla J(w)\) ergibt sich aus dem Gradienten, also der partiellen Ableitung von \(J(w)\): \[\frac{\partial J}{\partial w_j} = ... = - \sum_{i} \left( y^{i} -\phi(z^{i}) \right) x_j^{i}\]
eta0: Lernrate (Größe der Schritte)max_iter: Anzahl der EpochenLogistische Regression
Ähnlich zu Adaline, anstelle einer linearen Aktivierungsfunktion wird eine Sigmoid-Funktion verwendet. Es kann eine Aussage darüber getroffen werden, wie wahrscheinlich es ist, dass ein Merkmal \(x\) zu einer Klasse \(y\) gehört. Stochastisches Gradientenabstiegsverfahren ist möglich.
Sigmoid-Funktion \[ \phi(z) = \phi (w^T x) = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{- w^T x}} \] als Aktivierungsfunktion \(\phi(z)\).
Neue Straffunktion als Likelihood \(L\) bzw. besser: Log-Likelihood. \[ J(w) = -l(w) = log(L(w)) \] \[ log(L(w)) = \sum_{i=0}^{n} y^{i} \log (\phi(z^{i}) + (1 - y^{i}) \log (1 - \phi(z^{i}) \]
Die Änderung \(\Delta w = -\eta \nabla J(w)\) erfolgt erneut mit der partiellen Ableitung der Straffunktion \(J\).
max_iter: Anzahl der Epochensolver: z.B. 'lbfgs'penalty: Regularisierung z.B. l2Support Vector Machine
Methode, um den Abstand (margin) zwischen Klassengrenzen zu maximieren.
Auch nicht-lineare Entscheidungsgrenzen sind realisierbar.
Einteilung in
Nicht-linear trennbare Entscheidungsgrenzen
max_iter: Anzahl der EpochenC: Regularisierung (niedrig = starke Regularisierung)kernel: z.B. 'rbf' für nicht-lineare Entscheidungsgrenzengamma: Als Parameter des veränderten KernelsEntscheidunsbäume
Durch Treffen von Entscheidungen werden Grenzen gezogen (keine Funktion / Linie sondern Stufen). Reelle Zahlen werden zu Entscheidungsfragen umgewandelt.
Ziel ist es, den Informationsgewinn \(IG\) zu berechnen.
criterion: Impurity-Funktion (Entropie, Gini, Klassifizierungsfehler)max_depth: Tiefe eines Entscheidungsbaums.Random Forest
Ensemble von Entscheidungsbäumen. Nutzen mehrerer Entscheidungsbäume mit (jeweils) großer Varianz. Führt zu einem stabileren Modell, dass weniger anfällig für Überanpassung ist.
criterion: Impurity-Funktionn_estimator: \(k\): Anzahl der Entscheidungsbäume (z.B. Größe der Trainingsdaten)\(k\)-Nearest Neighbours
Zuweisung der Klassenbezeichnung durch Mehrheitsentscheidung anhand eines definierten Abstandsmaßes. Eine Standardisierung ist in jedem Fall notwendig
metric: Metrik z.B. 'minkowski'p: p=1 - Euklid-Abstand, p=2 - Manhatten-MetrikOptimierungen für Klassifzierungs-Algorithmen
Merkmal-Standardisierung
Verschieben der Merkmale auf den Mittelwert 0 durch eine Skalierung der Merkmale mittels \(\mu\) und \(\sigma\), sodass die Standardabweichung 1 ist. \[x_j^{\prime} = \frac{x_j - \mu_j}{\sigma_j}\] Auch mithilfe eines StandardScalers möglich. Dabei gibt es transform und inverse_transform um die ursprünglichen Werte zu erhalten.
Stochastisches-Gradientenabstiegsverfahren
Gewichtung inkrementell für jedes Objekt aktualisieren.
Überanpassung / Unteranpassung
Überanpassung / Unteranpassung verfälscht die Vorhersage eines Modells und soll vermieden werden.
Regularisierung
Verhinderung von Überanpassung, indem extreme Parameter (Gewichte) durch einen zusätzlichen Bias bestraft werden. Besonders relevant für LogisticRegression und Support-Vector-Machines.
Einführung eines Regularisierungsparamters \(\lambda\) bzw. \[ C = \frac{1}{\lambda}.\]
Beispiel für SVM:
Modellbewertung zum Validieren des Modells und zum Finden des besten Lernmodells.
Optimierung von Arbeitsabläufen durch Pipelines
fit
predict
fit) + ÜbergabeKreuzvalidierung um Unter- und Überanpassung zu vermeiden
Feinabstimmung von Hyperparametern durch Rastersuche (Grid Search)
Parameter:
estimator: Pipelineparam_grid: Dictionary für Hyperparameter-Kombinationencv: KreuzvalidierungBewertung des Modells anhand einer Wahrheitsmatrix (Konfusionsmatrix)
ROC Diagramme (Receiver-Operating-Characteristic)
Unausgewogene Klassenverteilung
Teil des überwachten Lernens zur Vorhersage eines numerischen, stetigen Wertes anstelle einer Klassenzugehörigkeit.
Lineare Regression
Suche nach einer Geraden (Regressionsgrade), die am Besten zu der Punktwolke passt.
Korrelationsmatrix
Berechnung der Geraden mithilfe der Methode der kleinsten quadratischen Abstände
\[ J(w) = \frac{1}{2} \sum_{i=1}^m \left (y^{(i)} - \hat{y}^{(i)} \right)^2 \]
Polynomale Regression
Bilden von Polynomen des Grades \(d\). \[ y = w_0 + w_1 x_1 \rightarrow y = w_0 + w_1 x + w_2 x^2 + \cdots + w_d x^d \]
Entscheidungsbäume / Random-Forest
Mithilfe von Entscheidungsbäumen oder des Random-Forest über die Maximierung des Informationsgewinn \(IG\) oder die Minimierung der Unreinheit stetige Vorhersagen treffen.
Optimierung
Behandlung von Ausreißern ist schwer.
RANdom SAmple Consensous
Parameter
Regularisierung
Bewertung von Regressionsmodellen
Residuen-Diagramme
Visualisierung der Abweichungen von Residuen bezüglich der tatsächlichen und der vorhergesagten Werte. Die Abweichungen sollten nahe 0 bzw. gleichverteilt um 0 sein. Falls Muster zu erkennen sind, ist das Modell vermutlich nicht in der Lage eine Vorhersage zu treffen.
Mean-Squared Error
Fehler der Durchschnittswerte für Trainings- und Testdaten mittels
\[MSE = \frac{1}{n} \sum_{i=1}^{n} ( y^{(i)} - \hat{y}^{(i)} )^2. \] Falls die Abweichung zwischen Trainings- und Testdaten zu groß ist, ist das Modell vermutlich überangepasst
Bestimmtheitsmaß \(R^2\)
Standardisierter MSE. Nutzt Sum of squared Error (SSE) und Sum of squared Total (SST).
\[ R^2 =1 - \frac{SSE}{SST} = 1 - \frac{MSE}{Var(y)} \]
Kombination von Klassifizieren, um einen Meta-Klassifizierer zu erhalten. Kooperation statt Konkurrenz. Es sollte abgewogen werden, ob sich der Rechenaufwand lohnt.
Mehrheitsentscheidung
Auswahl der Klasse, die von den meisten Klassifizieren vorhergesagt wurde.
Bagging - Ensembles mit Bootstrap-Stichproben
Nicht mehr das Trainieren verschiedener Klassifizierer mit den gleichen Daten, sondern diese in Untermengen aufteilen und an die Klassifizierer verteilen. Anschließend erneute Kombination durch Mehrheitsentscheidung.
Adaptives Boosting
Verfahren, um mit schwachen Klassifizierern eine bessere Korrektklassifizierungsrate zu erhalten, indem iterativ aus Fehlklassifizierungen gelernt werden soll.
Verfahren des unüberwachten Lernens (nicht gekennzeichnete Daten) zum Finden von Kategorien / verborgenen Strukturen.
k-Means zur Gruppierung von ähnlichen Objekten
Ähnlichkeit von Objekten wird durch die Distanz \(d\) der quadrierten euklidischen Distanz zweier Punkte \(x\) und \(y\) festgelegt.
\[d(\mathbf{x}, \mathbf{y})^2 = \sum_{j=1}^m (x_j - y_j)^2 = \vert\vert \mathbf{x} - \mathbf{x} \vert\vert_2^2 \] - mit \(j\) = Dimension der Merkmale
Sonstiges
Eine Verbesserung ist durch den k-Means-++ Algorithmus gegeben, indem die anfänglichen Zentroiden nicht zufällig, sondern weit voneinander entfernt gesetzt werden.
Fuzzy-C-Mean-Algorithmus
Minimierung der Zielfunktion \(J_m\)
\[ J_m = \sum_{i=1}^n \sum_{j=1}^k \left(w^{(i,j)}\right)^m {\vert\vert \mathbf{x}^{(i)} - \mathbf{\mu}^{(j)} \vert\vert}_2^2 ~ , ~~ m \in [1, \infty] \] - mit \(w^{(i,j)}\) als Wahrscheinlichkeit zwischen 0 und 1 - Exponent \(m\) als Fuzziness-Koeffizient
Modellbewertung
Ellbogenkriterium zum Finden des kleinsten \(k\), bei dem die Verzerrung am heftigsten ansteigt. Je höher die Anzahl der Cluster sind, desto niedriger sind die Verzerrungen. Hier wäre \(k = 3\) am ehesten geeignet.
Silhouetten-Diagramm als graphische Methode zur Darstellung der Qualität eines Clusters.
\[s^{(i)} = \frac{b^{(i)} - a^{(i)}}{\max(a^{(i)}, b^{(i)})}\]
Hierarchisches Clustering
Das Complete-Linkage Verfahren berechnet die Distanzmatrix aller Objekte, bevor die beiden nächstgelegenen Cluster zusammengeführt werden.
Dendogramm
Density Based Spatial Clustering of Applications with Noise
Bezeichnet mehrschichtige Neuronaler Netze. Adaline ist prinzipiell ein einschichtiges neuronales Netzwerk (nur eine Verbindung).
Mehrschichtiges Feedforward Netz (alternativ ‘multi layer perceptron’ kurz MLP). Unterscheidung in unterschiedliche Schichtarten:
Die einzelnen Schichten sind vollständig mit den Angrenzenden Schichten verknüpft.
Jede Schicht \(l\) hat \(n_l\) Aktivierungseinheiten (\(a_i^{(l)}\)):
Die Verbindungen zwischen den Schichten werden über Gewichte realisiert. Jede Schicht hat Gewichte für die Vorherige Schicht. Da die Elemente vollständig verknüpft sind kann man die Gewichte als Matrix (\(w^{(l)}\)) darstellen.
Für die Ausgabeschicht wird meistens eine One-Hot-Kodierung verwendet (ein Eintrag für jede Klasse).
Hyperparameter für das MLP sind:
Mehr Ebenen sorgen für einen kleineren Fehlergradienten und damit für ein langsameres lernen.
\[ z_{i}^{(l)} = \sum_{m} a_m^{(l-1)} \cdot w_{m, i}^{(l)} \]
Oder alternativ in Vektorschreibweise:
\[ z^{(l)} = a^{(l-1)} \cdot w^{(l)} \]
Anschließend ,analog zu bisherigen Netzen, bestimmung der Aktivierungsfunktion:
\[ a_i^{(l)} = \phi(z_i^{(l)}) \]
Analog zur logistischen Regression kann mit dem L2 Regulierungsterms die folgende Straffunktion aufgestellt werden:
\[J(\mathbf{w}) = - \left[ \sum_{i=1}^{n} y^{[i]} \log (a^{[i]}) + (1-y^{[i]}) \log ( 1 - a^{[i]}) \right] + \frac{\lambda}{2} \vert\vert \mathbf{w} \vert\vert_2^2 \]
Da wir aber nun nicht mehr nur einen Ausgabewert haben (One-Hot), muss die Straffunktion dafür veralgemeinert werden:
\[J(\mathbf{w}) = - \sum_{i=1}^{n} \sum_{j=1}^{t} y^{[i]}_j \log (a^{[i]}_j) + (1-y^{[i]}_j) \log ( 1 - a^{[i]}_j) + \frac{\lambda}{2} \sum_{l=1}^{L-1} \sum_{i=1}^{u_l}\sum_{j=1}^{u_{l+1}} {( w_j,i^{(l)})}^2 \]
Die hohe Anzahl der Dimensionen sorgt dafür, dass die Straffunktion sehr uneben ist und daher ein Verfahren gefunden werden muss, welches nicht einfach in lokalen Minima stecken bleibt.
Die Minimierung dieser Straffunktion (Gradientenabstiegsverfahren) ist sehr aufwendig und Rechenintensiv.
\(\Rightarrow\) Backpropagation
Verschachtelte komplexe Funktion:
\[f(g(h((u(vx)))))\]
Ableitung der Funktion
\[ \frac{d}{dx} \left[ f(g(h((u(vx))))) \right] = \frac{df}{dg} \frac{dg}{dh} \frac{dh}{du} \frac{du}{dv} \frac{dv}{dx} \]
Das lässt sich mit automatischer Differenzierung im Rückwärtsmodus effizient berechnen.
Ableitungen nach Ausgabe-Schicht
\[\frac{\partial}{\partial w_{i,j}^{(out)}} J(\mathbf{W}) = a_j^{(h)} \delta_i^{(out)} \]
Ableitungen nach hidden-Schicht
\[\frac{\partial}{\partial w_{i,j}^{(h)}} J(\mathbf{W}) = a_j^{(in)} \delta_i^{(h)} \]
Konvolutionale Neurale Netzwerke werden vor allem in der Bildverarbeitung eingesetzt.
Extrahieren Features aus den Eingaben (meistens Bilder) \(\Rightarrow\) Es müssen keine Merkmale von Hand ausgewählt werden.
Man unterscheidet zwischen zwei Verschiedenen Schichten:
Auf diese Schichten folgen dann noch einige weitere Vollverknüpfte schichten, analog zum MLP
Wird eine Funktion \(f\) mit einer Funktion \(g\) gefaltet, so schreibt man: \((f * g)(x)\)
Unterscheidung zwischen ein und zwei dimensionaler Faltung:
In CNNs wird stets die Diskrete Faltung verwendet:
\[\mathbf{y} = \mathbf{x} * \mathbf{w} \\[4mm] \rightarrow \mathbf{y}[i] = \sum_{k=-\infty}^{\infty} \mathbf{x}[i-k] \mathbf{w}[k] \]
In der Mathematik gibt es aber auch einige stetige Faltung:
\[ (f * g) (x) = \int_{-\infty}^{\infty} f(x-\tau) ~~ g(\tau)~~ d\tau \]
Damit die Werte in der Mitte keine höhere Bedeutung erhalten, kann man den Vektor \(x\) mit Nullen auffüllen, man spricht hier von Padding (siehe Zweidimensionale Faltung).
Die Zweidimensionale Faltung funktioniert quasi genau so wie die Eindimensionale. Statt zwei Vektoren werden hier aber nun zwei Matritzen verwendet.
Eine Poolingschicht wird mit \(P_{n_1 x n_2}\) bezeichnet
\(n_1\) und \(n_2\) geben die Größe der Poolingschicht an
Pooling veringert die Anzahl der Merkmale
Man unterscheidet zwischen
Parameter fürs Pooling sind:
Wichtig zu beachten ist, eine Pooling-Schicht besitzt keine erlenbaren Parameter, sie bleibt stets gleich.
Dropout ist ein neues Regularisierungsverfahren (Vermeidung von Überanpassung)
Während des Trainings wird der Einfluss von einzelnen Neuronen in jeder Iteration zufällig weggelassen
Das Netz wird daher gezwungen die Informationen etwas redundant zu verarbeiten
Rekurrente neuronale Netze berücksichtigen die Reihenfolge der verarbeiteten Daten
Man unterscheided vier Kategorien von RNNs:
Die einzelnen Schichten enthalten nun nicht mehr nur den einen Input von der vorherigen Schicht sondern ebenfalls den der aktuellen Schicht aus den vorherigen Datum.
Zur optimierung kann man die Beiden Gewichtungsmatrizen auch nebeneinander Schreiben und die beiden Aktivierungsvektoren übereinander anordnen und kann so die Aktivierung in einer einzelnen Vektor-Matrix Multiplikation ermitteln:
\[ h^{(t)} = \phi_h\left([\mathbf{W_{xh}}. \mathbf{W_{xh}}] \begin{bmatrix} x^{(t)} \\[2mm] h^{(t-1)} \end{bmatrix} + b_h \right) \]
Grafisch dargestellt sieht das dann wie folgt aus:
Für das Training unterscheidet man vor allem zwischen zwei Ansätzen:
BackPropagation-Through-Time
\[ L = \sum^T_{t=1} l^{(t)} \]
Der Gradient enthält einen Faktor, welcher dafür sorgt, dass er je nach Gewichtung der rekurenten Verknüpfung verschwindet (\(|w_{hh}| < 1\)) oder explosionsartig wächst (\(|w_{hh} > 1\)).
Die Naive Lösung ist, die Gewichte stets entsprechend zu skalieren.
Alternativen sind die anderen beiden Ansätze
Truncated BackPropagation-Through-Time
Funktioniert nahezu genau so wie BPTT, jedoch wird der Gradient ab einem bestimten Grenzwert einfach abgeschnitten.
Long Short-Term Memory
Inhalte der Vorlesung:
Arten des Lernens
Lernalgorithmen für Klassifizierung
Trainingsdaten-Vorverarbeitung
Datenkomprimierung und Dimensionsreduktion
Modellbewertung und Hyperparameterabstimmung
Ensemble-Learning
Beispiel: Stimmungsanalyse anhand von Texten
Einbettung in einen Webanwendung
Vorhersage stetiger Zielvariablen durch Regressionsanalyse
Clusteranalyse nicht gekennzeichneter Daten
Künstlichen neuronale Netze
TensorFlow
Bildklassifikation
Modellierung sequentieller Daten
Natural Language Processing
Klassifizierung
nltk bereitgestellt)Topic Modeling (Clustering, unüberwacht)
Mittels Latent Dirichlet Allokation (LDA) Wortgruppen verschiedener Dokumente finden, die Themen widerspiegeln. Die Anzahl der Themen muss im Vorhinein festgelegt werden.
Einbettung in eine Webanwendung